Advances in computer system performance depend on many factors. Further, today's microprocessors are targeted for many different operating environments. An important area for improving system operation in various environments is the improvement of memory data processing. More particularly, operations associated with a load/store engine of a microprocessor are influential in maintaining optimal data processing.
Typically, load instructions performed by a load/store engine of a microprocessor require formatting of the data to be loaded. A load formatter is therefore usually provided at the output of the data cache to perform the data formatting. Improvements in the formatting of load data remain a vital aspect of improving data processing and overall system performance.
In the area of load data formatting, a needed improvement is support for aligned and unaligned data accesses. Further, providing support for Big Endian and Little Endian addressing modes is preferable, as well as providing support for fixed point functions that load words, halfwords, bytes, byte reverses, and sign extends. Similarly, supporting floating point functions including those that load words and doublewords is desirable. Another sought feature is providing load formatting support for input/output (I/O) data formatting. While it is key that the load data formatting in the microprocessor be able to support these features to achieve better system performance, preferably, such improvement occurs with no added performance penalty.
Accordingly, what is needed is a load formatter that provides these preferred functionalities in an efficient manner.